home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / docs / howto / server-info / assault.debug.txt < prev    next >
Encoding:
Text File  |  1992-12-14  |  5.0 KB  |  199 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8. How to Boot Assault
  9.  
  10.      I am ``Assault'', A Sprite file server.  To boot  after
  11. a power-up:
  12.  
  13.     >>init
  14.      there will be a pause, then some info printed out
  15.     >>boot -f rz()new
  16.      a number should appear immediately, which is the size of the text being loaded
  17.  
  18. The above commands will cause Assault to  boot  off  of  its
  19. disk.   If  Assault  doesn't  boot, then make sure you typed
  20. 'init' before 'boot'.  If it still  doesn't  work  then  try
  21. booting off of Allspice:
  22.  
  23.     >>init
  24.      there will be a pause, then some info printed out
  25.     >>boot -f tftp()new
  26.      a number should appear immediately, which is the size of the text being loaded
  27.  
  28. If Assault still won't boot, then go to Allspice and  ensure
  29. that  its  'bootp'  daemon is running, as well as its 'rarp'
  30. and 'arp' daemons.
  31.  
  32.      To reboot when running Sprite, use  the  shutdown  com-
  33. mand:
  34.  
  35.     % sync
  36.     % shutdown -h
  37.  
  38. The 'sync' command writes out the cache, is  isn't  required
  39. unless you are parnoid.  Shutdown will sync the disks as the
  40. last thing before rebooting.  After Assault halts, reboot it
  41. as  described  above.  There is no autoboot for the descsta-
  42. tions, apparently.
  43.  
  44.      If Assault is so wedged you can't do anything from  its
  45. console, then attempt to sync the cache with:
  46.  
  47.     F1-W
  48.  
  49. You should get a message about syncing the disks.   You  can
  50. abort to the PROM with
  51.  
  52.     F1-A
  53.  
  54. Or, as a last resort, you can reset it with the reset button
  55. on the back.
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74. Debugging Tips
  75.  
  76.      If Assault acts up then you  might  try  the  following
  77. things.   If  you  aren't logged in, log in as root.  Useful
  78. commands are:
  79.  
  80.     assault # rpcstat -srvr
  81.  
  82. Which dumps out the status of all the RPC server  processes.
  83. If  a bunch are ``busy'', and they remain busy with the same
  84. RPC ID and client, then there may be a  deadlock.   If  they
  85. are  all  in the ``wait'' state it means that the Rpc_Daemon
  86. process is not doing rebinding for some reason.
  87.  
  88.     assault # ps -a
  89.  
  90. This will tell you if any important daemons have  died.   If
  91. the  ipServer  is in the DEBUG state you can kill it and the
  92. daemons that depend on it  with  /hosts/assault/fixIPServer.
  93. This  should  also  restart these daemons, but if it doesn't
  94. you can use /hosts/mint/restartservers.
  95.  
  96.     % rpcecho -h hostname -n 1000
  97.  
  98. This      program,       which       is       found       in
  99. /sprite/src/benchmarks/rpcecho,   and  may  or  may  not  be
  100. installed in /sprite/cmds, will tell you if  there  timeouts
  101. when using the RPC protocol to talk to another host.  If you
  102. suspect that a host with  an  Intel  ethernet  interface  is
  103. flaking  out,  you  can try this command.  Lot's of timeouts
  104. indicate trouble.  You can reset a host's network  interface
  105. from its console with either of these keystrokes.
  106.  
  107.     Fl-N
  108.     break-N
  109.     Ll-N
  110.  
  111. On a regular DecStation keyboard you use the F1 key  like  a
  112. shift  key.   On  a  regular Sun keyboard you use the L1 key
  113. like a shift key.  On an ascii terminal you  use  the  break
  114. key like an escape key, hit break, then the key.
  115.  
  116.  
  117. Kernel Debugging
  118.  
  119.      If Assault is so hung you can't explore with user  com-
  120. mands, then the best you can do is sync the disks with:
  121.  
  122.     F1-W
  123.  
  124. This should print a message about queuing a call to sync the
  125. disks,  and when it is done it should print a '.' and a new-
  126. line.   If  you  don't  get  the  newline  then  Assault  is
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140. deadlocked  inside  the  file  system  cache,  sigh.   Throw
  141. Assault into the debugger with:
  142.  
  143.     F1-D
  144.  
  145. You should get a message about ``Entering the debugger...''.
  146. (If not, I think you're forced to reboot.)
  147.  
  148.      You have to run the debugger from dill, which is behind
  149. you.     The    kernel    images   should   be   copied   to
  150. dill:/sprite/src/kernel/nelson,  and  their  version  number
  151. should be evident in their name, i.e. ds3100.1.043.  If not,
  152. you can run strings on the kernel images and grep for ``VER-
  153. SION''.
  154.  
  155.     dill% strings /sprite/src/kernel/nelson/ds3100 | egrep VERSION
  156.  
  157. To run the kernel debugger (a variant of dbx)
  158.  
  159.     dill% cd /sprite/src/kernel/nelson
  160.     dill% Kdbx ds3100.version assault
  161.  
  162. If there is a deadlock you can dump the process table:
  163.  
  164.     (kdbx) set $pdump = 0
  165.  
  166. You can switch from process to process and  to  stack  back-
  167. traces  by  using  the 'set $index = pid' command.  You only
  168. need to specify the last two hex digits of the  process  ID.
  169. If  you  only  have  a decimal ID, then you have to type the
  170. whole thing.  File system  deadlocks  center  around  locked
  171. handles,   usually.   When  you  find  a  process  stuck  in
  172. Fsutil_HandleFetch of Fsutil_HandleLock you can try to  find
  173. the culprit by looking at the *hdrPtr these guys are waiting
  174. on.  There is a 'lockProcessID' in the hdrPtr that is really
  175. the  address of a Proc_ControlBlock.  You can print this out
  176. with something like:
  177.  
  178.     (kdbx) print *(Proc_ControlBlock *)(hdrPtr->lockProcessID)
  179.  
  180. You cannot reboot Assault from within  kdbx.   You  have  to
  181. abort  it,  or reset it with the reset button on the back of
  182. the machine, and then reboot it as described above.
  183.  
  184. Modify date
  185.  
  186.      These notes were last updated by Brent Welch on January
  187. 28, 1992.
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.